/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.knolle.lotes.utilidades;

import java.math.BigDecimal;
import java.util.List;
import javax.swing.table.AbstractTableModel;
import modelo.Lotes;
import modelo.UnidadMedidaSuperficie;

/**
 *
 * @author marcelo
 */
public final class LotesTablaModel extends AbstractTableModel{
    
    //Nombre de Columnas
    private String[] columnsName = {"id","Nombre","Superficie","Unidad","Ubicacion"};
    private List<Lotes> datos;

    /**
     * Constructor llamado y se le pasa una lista de arrays para los datos
     * @param _datos 
     */
    public LotesTablaModel(List<Lotes> _datos) {
//        System.out.print("Llamando al constructor");
        datos = _datos;
    }
    /**
     * Constructor que no inicialza los datos
     */
    public LotesTablaModel(){
       
    }
    
    @Override
    public int getRowCount() {
//        throw new UnsupportedOperationException("Not supported yet.");
        return datos.size();
    }

    @Override
    public int getColumnCount() {
//        throw new UnsupportedOperationException("Not supported yet.");
        return columnsName.length;
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
//        throw new UnsupportedOperationException("Not supported yet."); 
        if (datos == null){
          return null;
        }
        //Hacemos un switch segun el caso
        //Rompebolisima
        try{
            Lotes lote = datos.get(rowIndex);
            switch(columnIndex) {
                case 0: return lote.getId();
                case 1: return lote.getNombre();
                case 2: return lote.getSuperficie();
                case 3: return lote.getUnidadMedidaSuperficie();
                case 4: return lote.getUbicacion();
                default: return "No hay datos para la columna seleccionada";   
            }
        }
        catch(Exception e){
           return "Se produjo un error: " + e.getMessage();
        }
        
        
        
    }

    @Override
    public String getColumnName(int column) {
        return columnsName[column];
    }

    @Override
    public Class<?> getColumnClass(int columnIndex) {
        switch(columnIndex) {
                case 0: return Integer.class;
                case 1: return String.class;
                case 2: return BigDecimal.class;
                case 3: return UnidadMedidaSuperficie.class;
                case 4: return String.class;
                default: return String.class;
            }
        
    }
    
    
    
}
